<#testBGasm PRG formatted GEOS file V1.0 Star NX-10 OP V2.0 or higher Text Scrap BLASTER'S CONVERTER V2.5 testBGasm.rel VDC-BG.rel Write Image V2.1 geoWrite V2.1 ; **************************************************************************** ; testBG -- test the VDC-BG routines that implement an 80 column BG screen ; within the extra RAM available on a 64K VDC RAM system. ; Robert A. Knop Jr., Usenet Hacking Mag Issue #3 ; **************************************************************************** ;.if Pass1 ;.noeqin @.include geosSym .include 128sym .include geosMac ;.eqin ;.endif Start: jsr InitVDC ;Make sure we're set up for 64K VDC LoadW RecoverVector,VDCRecRect ;Point to our new Recover Routine LoadB dispBufferOn,ST_WR_FORE ;Write only to FG screen LoadW r0,$2000 LoadW r1,BACK_SCR_BASE LoadB r2L,$c7 jsr FillRam ;Fill the 40-col BG screen with $c7 LoadW r0,$2000 ;Later, use the debugger, or write a short LoadW r1,SCREEN_BASE ; routine to make sure this memory is untouched LoadB r2L,$d9 ;Fill the 40-col FG screen with $d9 jsr FillRam lda #$00 jsr SetPattern ;Set pattern to all 0's jsr i_Rectangle ;Clear the screen .byte 0,199 .word 0,639 lda #$01 jsr SetPattern ;Set pattern to all 1's jsr i_Rectangle ;And draw a block .byte 50,150 .word 80,255 LoadW r3,0 LoadW r4,639 LoadB r2L,0 LoadB r2H,199 jsr VDCImpRect ;Imprint whole screen to BG lda #$00 jsr SetPattern jsr i_Rectangle ;clear a subset of rectangle .byte 80,120 .word 120,180 jsr Wait LoadW r3,121 LoadW r4,179 LoadB r2L,81 LoadB r2H,119 jsr VDCRecRect ;Recover all but a thin (1 pix) border jsr Wait LoadW r3,120 LoadW r4,180 LoadB r2L,80 LoadB r2H,120 jsr VDCRecRect ;Recover whole cleared region jsr Wait LoadW r0,JunkBox jsr DoDlgBox ;Call a dialog box to show that the jsr Wait ; recovery after that works. @jmp EnterDeskTop eskTop JunkBox: .byte DEF_DB_POS|2 .byte DBTXTSTR .byte TXT_LN_X,TXT_LN_1_Y .word LookMa .byte OK .byte DBI_X_1,DBI_Y_2 .byte NULL LookMa: .byte "Look, Ma, a dialog box!",0 Wait: jsr i_PutString .word 0 .byte 190 .byte "Click to continue.....",0 10$ lda $dc01 ;Read mouse directly and #%00010000 ;Check the firebutton bne 10$ lda #$00 jsr SetPattern jsr i_Rectangle .byte 180,199 .word 0,639 @rts ;.eqin ;.endif Start: jsr InitVDC ;Make sure we're s